// 从 @vue/cli-service 包中导入 defineConfig 函数，用于定义 Vue CLI 项目的配置
const {
	defineConfig
} = require('@vue/cli-service');

// 使用 defineConfig 函数定义项目的配置
module.exports = defineConfig({

	// 打包路径
	publicPath: './',
	// 开启依赖项的转译，确保所有依赖都被正确编译
	transpileDependencies: true,
	// 插件选项，这里配置的是 electronBuilder 插件
	pluginOptions: {
		electronBuilder: {
			// 这里是关键的一部，关系着图片是否能够正常显示
			customFileProtocol: './',
			// electron-builder 的构建选项
			builderOptions: {
				// 应用程序的唯一标识符，通常采用反向域名格式
				"appId": "com.example.app",
				// 应用程序的产品名称，将显示在安装程序和系统中
				"productName": "electronTest",
				// 版权声明
				"copyright": "Copyright © 2019",
				// 构建输出目录，指定构建后的文件存放位置
				// "directories": {
				// 	"output": "./dist"
				// },
				// 配置静态资源
				// "extraResources": [{
				// 	"from": "src/static/image",
				// 	"to": "img",
				// 	"filter": ["**/*"]
				// }],
				// Windows 平台的特定构建选项
				"win": {
					// Windows 应用程序的图标路径
					"icon": "./src/static/img01.ico",
					// 构建目标配置
					"target": [{
						// 构建目标类型为 NSIS 安装程序
						"target": "nsis",
						// 构建的架构为 x64
						"arch": [
							"x64"
						]
					}]
				},
				// NSIS 安装程序的特定配置
				"nsis": {
					// 是否为一键安装模式，设置为 false 表示允许用户自定义安装过程
					"oneClick": true,
					// 是否允许以管理员权限安装
					"allowElevation": true,
					// 是否允许用户更改安装目录
					"allowToChangeInstallationDirectory": true,
					// 安装程序的图标路径
					"installerIcon": "./src/static/img01.ico",
					// 卸载程序的图标路径
					"uninstallerIcon": "./src/static/img01.ico",
					// 安装程序头部的图标路径
					"installerHeaderIcon": "./src/static/img01.ico",
					// 是否创建桌面快捷方式
					"createDesktopShortcut": true,
					// 是否创建开始菜单快捷方式
					"createStartMenuShortcut": true,
					// 快捷方式的名称
					"shortcutName": "污水厂处理工具"
				},
				// Electron 下载源配置，指定 Electron 下载的镜像地址
				"electronDownload": {
					"mirror": "https://npmmirror.com/mirrors/electron/"
				}
			}
		}
	}
});